package main.java.juc;

/**
 * 真正的多线程开发,公司中的开发,降低耦合性
 * 基本的卖票例子
 * 线程就是一个单独的资源类,没有任何附属的操作
 * 1.属性 方法
 */
public class SaleTicketDemo01 {
    public static void main(String[] args) {
        final Ticket ticket = new Ticket();
        new Thread(()->{
            for(int i = 1;i<60;i++){
                ticket.sale();
            }
        },"A").start();
        new Thread(()->{
            for(int i = 1;i<60;i++){
                ticket.sale();
            }
        },"B").start();
        new Thread(()->{
            for(int i = 1;i<60;i++){
                ticket.sale();
            }
        },"C").start();
    }

}
class Ticket{
    //属性 方法
    private int number = 50;
    //卖票的方式
    public synchronized void sale(){
        if(number>0){
            System.out.println(Thread.currentThread().getName()+"卖出了第"+(50-(--number))+"票"+",还剩"+number+"张票.");
        }
    }
}
